{
 "metadata": {
  "name": "Windowing_Part3"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Introduction\n",
      "--------------\n",
      "\n",
      "In this section, we cover three additional metrics used in practice for evaluating and choosing between different window functions. "
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "### Peak Sidelobe Level\n",
      "\n",
      "As the name suggests, *peak sidelobe level* measures how far down the nearest peak is from the mainlobe's maximum. This captures the worst-case scenario where a nearby signal sits exactly on the highest sidelobe. This idea is illustrated in the next figure."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from __future__ import division\n",
      "from scipy import signal \n",
      "\n",
      "def db20(W,Nfft=None):\n",
      "    'Given DFT, return power level in dB or take DFT if need be'\n",
      "    assert  np.isscalar(W) or W.ndim==1 \n",
      "    if Nfft is None: # assume W is DFT \n",
      "        return 20*log10(abs(W))\n",
      "    else: # assume time-domain passed, so need DFT\n",
      "        DFT= fft.fft(array(W).flatten(),Nfft)/sqrt(Nfft)\n",
      "        return 20*log10(abs(DFT.flatten()))\n",
      "\n",
      "def undb20(x):\n",
      "    'Invert the db20. Recover amplitude'\n",
      "    return 10**(x/20.)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 1
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "fig, ax = subplots()\n",
      "fig.set_size_inches((6,3))\n",
      "\n",
      "Ns= 16\n",
      "Nf = 256*2\n",
      "freqs = arange(Nf)*2*pi/Nf\n",
      "w = signal.hanning(Ns,False)\n",
      "W = db20(w,Nf) \n",
      "\n",
      "ax.plot(freqs,W,'-b',ms=4.)\n",
      "ax.set_ylim(ymin = -60)\n",
      "ax.set_xlim(xmax = pi*1.01)\n",
      "ax.set_xlabel('Discrete Frequency',fontsize=14)\n",
      "ax.set_ylabel(r'$20\\log_{10}|W|$',fontsize=18)\n",
      "ax.grid()\n",
      "ax.set_title('Hanning Window',fontsize=18)\n",
      "ax.annotate('',fontsize=28,\n",
      "            xy=(76/Nf*2*pi,W[0]),\n",
      "            xytext=(76/Nf*2*pi,W[0]-32),\n",
      "            arrowprops={'facecolor':'b','arrowstyle':'<->'},\n",
      "            )\n",
      "ax.text( 0.4,0.5,'Peak sidelobe level',\n",
      "        fontsize=18,\n",
      "        transform=ax.transAxes,\n",
      "        bbox={'fc':'y','alpha':.3})\n",
      "\n",
      "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 2,
       "text": [
        "<matplotlib.text.Text at 0x5a8b110>"
       ]
      },
      {
       "output_type": "display_data",
       "png": "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\noGjYsCFdu3Zl69atyjKFQqFM6Hbv3j0GDRrEqFGjuHz5MkeOHOGNN95Q1g0PD6dXr1506dKFc+fO\ncfjwYTp06EBmZqayzhdffIG7uztnz55lzpw5XLx4kS5dutC7d29+++03tm3bRkxMDKNHjwYgNDSU\nVq1aMXr0aOVMwcnJibt379KuXTsaNWrE6dOnOXjwIKmpqfTq1avA1N753Z80aRLvvvsuv//+O716\n9eKbb75hypQphISEcPnyZRYvXsz8+fNZsWIFIL98+/TpA8hpKL799ltmzpxJWlpaoRLhPX/+HD8/\nP6ytrTly5AgnT56kWrVq+Pv78+LFC2W9mzdvsnnzZnbu3ElERATnz59nypQpyvurVq3i7bffZsyY\nMcTGxhIeHk7jxo0BePPNNwkPD+fevXvK+vv37+f+/ftKQy4wErR6OohAoCEjRoyQevTokeu9iRMn\nStbW1sprX19fKTg4WJIkSTp79qykUCikW7du5fps69atpcGDB+fZb61ataSePXuqlA0fPlwaM2aM\nStn58+clhUIhJScnq8mQzbRp06SOHTuqlD169EhSKBRSdHR0njIoFArJyspKKlu2rPKzYcMGKSEh\nQVIoFNIXX3yhUr9GjRrS+vXrVcqWLFkiubu7S5IkSfv27ZPMzc2lxMRE5f2jR49KCoVCWrt2rSRJ\nkrLts2fPqsmydetWSZIkac2aNZKLi4vK/YyMDMne3l7atGmTJEmSNH36dKlMmTLSkydPlHVmz54t\n1atXT3nt6OgoTZo0KU/9PTw8pHnz5imvg4KCpAEDBuRZX2CYmExuK4HpIElSnt+Yvby88Pf3x8PD\ng86dO+Pv70///v2pVKkSgMqMITcUCgXNmjVTKTt79izXr18nLCxMTYbr168r236ds2fPcuTIEcqV\nK6fWx40bN2jevHmecixatIiuXbsqrx0cHHj48CGAinzJyckkJSXx5ptv8vbbbyvLc8ZCfv/9dxwd\nHVUyLrdo0QIzs8I5Fs6ePUtCQoKaPi9evODGjRvK61q1aqnUqVatmtJt+ODBA/744w86duyYZz/j\nxo1jxYoVTJw4kUePHrFr1y527NhRKFkF+kcYD4HBERcXR926dXO9Z2ZmRkREBCdPniQiIoI1a9Yw\nadIkDh8+TKNGjTRq//XguyRJjBs3jg8//FCtbvXq1fNsR5IkevTowaJFi9TuOTg45CtD1apVqVOn\njkpZtvHIKV9WVhYgu4Jat26db5v5kW1IpBzusuwEjjn78vLyUjGi2eQ8LdHS0lLlnkKhUMqpCcOG\nDWPixIkcO3aMc+fO4eDgQJcuXTR+XmAYCOMh0Bu5zS5iY2PZt28f06ZNy/dZHx8ffHx8+Pzzz2nY\nsCGbNm1SZkw9cOAAY8aM0ViOJk2aEBsbq/Yyz0mpUqXUVj41adKETZs2UbNmTSwsSuZPqUqVKlSv\nXp1r164xbNiwXOs0aNCAO3fukJSUpJx9REdHq7zQK1euDMAff/xB06ZNAXmWlpOmTZuyceNG7O3t\nqVChQpHkdXBwwNHRkQMHDuQ5+7Czs6Nv376sWbOGmJgY5VGpAuNCBMwFeuPly5fcv3+fP/74gwsX\nLvDFF1/g5+dHs2bN+Pjjj5X1JElSfmM+efIkISEhnDlzhtu3b7Nz504SExOVR3BOmTKFzZs3M23a\nNOLi4rh06RJLly5VCfi+zsSJE4mOjmb8+PGcP3+ea9eusXv3bhU3kbOzM9HR0dy6dYuHDx8iSRLv\nvPMOf/31FwMHDiQ6OpobN25w4MAB3nrrLVJTU7X2c5o5cyYLFixg6dKlXPn/9u7epZEoigL4TZQ8\nZzRCYDApFKLiB0JSaGMIEiwEraYRQYQQEduAYGehpUEMI5hSAoKEtPkTRtDGQiVEHItgGSR10BRn\nqxWHsLuMhXF3z6+cucWd11x458I8Pkq1WpXz83M5PDwUEZGlpSWZnp6WdDotd3d3cn19LTs7O66B\npmmazM/PSy6Xk1qtJldXV64zFhHZ2NiQcDgspmmKbdtSr9fFtm3Z3d11bVz9yd7enliWJZZlieM4\ncnt7K/l83lWzvb0tFxcXcn9//9trRvrGuhe30P8sk8nA5/PB5/Oht7cXhmFgcXERhUIB7XbbVfsx\nrH54eMDKygrC4TCUUpiYmMDR0ZGrvlKpYG5uDkopGIYB0zTx+voKAIhGozg+Pu7o5+bmBsvLyxgc\nHER/fz9isRj29/ff3zuOg0QiAV3X4ff73wP7p6cnrK6uIhQKQdM0TE1NIZvN4u3t7Zff/jGk/qhe\nr8Pv93eE2gBQKpUwOzuLvr4+hEIhLCwsoFwuu/pLpVJQSmFychKVSgUDAwPvgfnPs0smk9B1HfF4\nHJeXlx29NBoNbG5uYmhoCEopjI6OYmtrC81mEwBwcHCAWCzm6q1YLCIYDLqenZ2dYWZmBoFAAJFI\npGMhAQDGx8c7Fg7o78H/eRD9o4LBoBQKBdcq83fRarVkeHhYTk9PZX19vdvt0Ccw8yCiLwNAXl5e\n5OTkRHRdl7W1tW63RJ/E4UFEX+b5+VnGxsZkZGREisWi9PT0dLsl+iReWxERkWfctiIiIs84PIiI\nyDMODyIi8ozDg4iIPOPwICIizzg8iIjIsx+n3NfMM2XruwAAAABJRU5ErkJggg==\n",
       "text": [
        "<matplotlib.figure.Figure at 0x5a04c90>"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "The figure above shows the DFT of the Hanning window and how far down the next sidelobe is from the peak (~31 dB). The figure of merit considers the worst-case where an interfering single frequency sits exactly on the peak of this sidelobe. The next bit of code uses complex roots to find the peaks of the sidelobes for window functions."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def peak_sidelobe(w,N=256,return_index=False, return_all=False):\n",
      "    '''Given window function, return peak sidelobe level and bin index of \n",
      "       all (return_all=True) or some sidelobe peaks if desired (return_index=True). \n",
      "       Note that this method fails when the window function\n",
      "       has no roots on the unit circle (e.g. exponential window). The return index\n",
      "       is in units of DFT-bin (k/N). \n",
      "    '''\n",
      "    assert (len(w)<=N) # need longer DFT otherwise\n",
      "    r=np.roots(w)     # find complex roots of window function\n",
      "    r = r[np.where(np.round(abs(r),3)==1)] # keep only those on unit circle (approx)\n",
      "    y=log(r).imag/2./pi*N     # get k^th bin index\n",
      "    y=y[y>0].astype(np.int32) # keep positive half only as integer roundoff\n",
      "    y=np.unique(y)            # dump repeated\n",
      "    y.sort()                  # sort in-place \n",
      "    W = 20*log10(abs(fft.fft(w,N))) #compute DFT\n",
      "    # loop through slices and pick out max() as peak for that slice's sidelobe\n",
      "    sidelobe_levels = []\n",
      "    sidelobe_idx =[]\n",
      "    for s in [slice(i,j) for i,j in zip(y[:-1],y[1:])]:\n",
      "        imx= s.start+W[s].argmax() # bin index of max\n",
      "        peak= W[imx]-W[0]          # relative to global peak\n",
      "        sidelobe_levels.append( peak ) # store sidelobe level for later\n",
      "        sidelobe_idx.append(imx/N)       # ... with corresponding bin\n",
      "    if return_all:\n",
      "        return zip(sidelobe_levels, sidelobe_idx)\n",
      "    if return_index:\n",
      "        return (sidelobe_levels[0], sidelobe_idx[0])\n",
      "    return sidelobe_levels[0]\n",
      "\n",
      "def dftmatrix(N=32,Ns=None):\n",
      "    'construct DFT matrix of size N give Ns time-samples'\n",
      "    k= np.arange(N)\n",
      "    if Ns is None: Ns = N\n",
      "    n = arange(Ns)\n",
      "    U = matrix(exp(1j* 2*pi/N *k*n[:,None])) # use numpy broadcasting to create matrix\n",
      "    return U/sqrt(N)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 3
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "Now, let's consider the scenario with a signal on the highest sidelobe of the window function."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "Ns = 64\n",
      "N= 512\n",
      "\n",
      "U=dftmatrix(N=N,Ns=Ns)\n",
      "offset=8 # place DFT near middle of plot for readability\n",
      "u=array(U[:,offset]).flatten()*sqrt(N) # phase shifts\n",
      "\n",
      "w = signal.hanning(Ns,False)\n",
      "level,idx = peak_sidelobe(w,N,return_index=True)\n",
      "x0 = u*ones(Ns)\n",
      "x1=u*exp(1j*2*pi*arange(Ns)*(idx))         # signal on peak of sidelobe\n",
      "\n",
      "fig,axs = subplots(2,1,sharex=True,sharey=True)\n",
      "fig.set_size_inches((9,4))\n",
      "\n",
      "ax=axs[0]\n",
      "#ax.plot(abs(fft.fft(w*(x0),N)))\n",
      "ax.plot(db20(w*x0,N))\n",
      "ax.arrow( offset+idx*N,-60,0,60,\n",
      "         length_includes_head=True,lw=2.,\n",
      "         head_length=14,head_width=4,fc='g',alpha=0.3)\n",
      "#ax.arrow( idx*N,0,0,3,length_includes_head=True,lw=1.5,head_width=2,fc='g')\n",
      "ax.arrow(offset,-60,0,60,\n",
      "         length_includes_head=True,\n",
      "         lw=2.,head_length=14,head_width=4,fc='b')\n",
      "#ax.legend(loc=0)\n",
      "ax.set_xlim(xmax=N/4.,xmin=-3)\n",
      "ax.set_ylim(ymax = 17,ymin=-60)\n",
      "ax.set_ylabel(r'$20\\log_{10}|W_k|$',fontsize=18)\n",
      "ax.text(0.4,.5,'''The signal (green) on the first sidelobe is reduced \n",
      "by 31 dB during the convolution but still \n",
      "contaminates the other signal (blue) by \n",
      "the residual amount''',va='center',fontsize=12,transform=ax.transAxes);\n",
      "\n",
      "ax=axs[1]\n",
      "ax.plot(db20(w*x1,N))\n",
      "ax.arrow( offset+idx*N,-60,0,60,length_includes_head=True,lw=2.,head_length=14,head_width=4,fc='g')\n",
      "ax.arrow( offset,-60,0,60,length_includes_head=True,lw=2.,head_length=14,head_width=4,fc='b',alpha=0.3)\n",
      "#ax.legend(loc=0)\n",
      "ax.set_xlim(xmax=N/4.,xmin=-3)\n",
      "ax.set_ylim(ymax = 17,ymin=-60)\n",
      "ax.set_ylabel(r'$20\\log_{10}|W_k|$',fontsize=18)\n",
      "ax.set_xlabel('k',fontsize=16)\n",
      "ax.text(0.4,.6,'''In this case, the window's mainlobe peak reaches \n",
      "the green signal and it's the blue signal's turn to \n",
      "sit on the sidelobe and contaminate the green \n",
      "signal.''',va='center',fontsize=12,transform=ax.transAxes);\n",
      "\n",
      "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)\n",
      "\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 4,
       "text": [
        "<matplotlib.text.Text at 0x5d3bc50>"
       ]
      },
      {
       "output_type": "display_data",
       "png": "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\nERElJSWRoaEhnT59moiIzp07R4aGhpSWllau7idPnpC+vj4RESUnJ5OtrS1ZW1sTEdHjx49JLBbz\nZQUCAd8ePz8/MjQ0pJs3b1JxcTGNGjWKvLy8iIgoLS2NhEIh/frrr1RcXEzr1q0jDQ0N2rFjBxER\n7dixgxwcHOjp06eUnZ1Nw4YN49sXEhJC7u7uRES0d+9eatasGY0YMYI/zsPDo1wbwsPDycnJiTIz\nM/nzUHIOyuLi4kLNmzenJ0+eUGZmJjk6OpKDgwOdP3+eiouLafTo0TR27Fi+fFhYGKWnp5NEIqE1\na9aQmZkZFRQU8OfFx8eHiCq+DoOCgviyDx48oMaNG9Pvv/9OxcXFtHLlSnJwcKCioiIiIrK1taW2\nbdtSUlISpaenU9euXWn+/PlERBQVFUUmJiZ048YNkkqltGvXLrKzs+N1KotAIKBevXpRRkYGJSYm\nUosWLWj79u1ERHTkyBFycHCg2NhYkkgktHjxYnJ2dlap7SXtycvLowEDBtDYsWNJKpXK1cHPz4/0\n9PTo6tWrRESUm5tLH3/8MS1atIiKioroyZMnZG9vT2fOnCEior/++ouuX79OEomE4uPjqVWrVrR+\n/XoiIsrKyiIzMzNau3YtFRQU0Nu3b+n69eu8Tjo6OnT69GmSSqUUGBhInTt3JiIiiUSiVGbnzp0p\nLCyMiIhycnLo2rVrvP4VPder9am/efNmIiLKzMyktWvX0saNG+nLL7+sThHvBDNuGIyKKWvcODg4\n8PtycnJIIBDQixcvKjyW6P8fKsnJyfy2jh070sGDB4lI9qESEhJCzs7OdOfOHaX6Xb16lYyNjUki\nkVTYlt9++43at29PREQPHz4kExMT3vgpTatWrWT0TklJIU1NTZVklG5DCa6urrRkyRL++08//UT9\n+vUjIqLly5eXM4bc3Nxo165dcuu3tramqKgo2r9/P/n7+1OnTp0oNjaWQkJCaMiQIXy50sbNmDFj\naMKECfy+U6dOUcuWLYmIaNeuXdSlSxcZGVZWVrxx06tXL9q0aRO/78GDB3xfPHr0iMRiMUmlUpo0\naRJt2bKFrKysiIho9OjRtG7dunL6R0REUIsWLejatWsV9qerqystXbqU/z5r1iwaMGAA//348ePU\nrl07hceLxWL++il9XipzHX733Xe8wUZEJJVKydLSkv744w8i4q7xLVu28PtPnTpFzZo1IyKiSZMm\n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\nXyZ9eWny8/Nl0re/K2fPnuVlBAQEUEBAABERRUdH00cffUSFhYX09OlTatasmVxdqqGZNc6zZ8/o\n2LFjdOzYsWqt9/JlIisrordvq7XaOsHDw4MANIjzqQp+fkTffFPXWnDExsaStbU1paamEhFRQkIC\nPX78mIiIgoODycfHh4iI4uPjSSAQKPzNExEtWLCAunTpQmlpaZSWlkbOzs60YMECIiK6cOECaWho\nUFBQEBUXF9OpU6dIV1eX3rx5I7cuV1dX2rFjh8w2gUBA7u7ulJmZSYmJiWRsbEzh4eFERHTkyBFy\ncHCg2NhYkkgktHjxYnJ2dpZb9+bNm8nd3Z3y8vJIKpVSVFQUZWVllZO7adMmatmyJSUlJVF6ejq5\nurqSmpoa3wceHh40adIkys3NpZcvX1LHjh1py5YtREQUGhpK3bp1IyKi169fk76+PoWFhZFEIqH9\n+/eTWCym9PR0IiJycXEhS0tLio6OppycHPrss8/4fk9KSiJDQ0M6ffo0ERGdO3eODA0NKS0tTW7b\nDh06xJ/LgwcPUuPGjen58+e8TpqamrR9+3aSSqW0adMmsrCw4I/t3LkzzZo1iwoLC+nixYskFArJ\n19dXrpzr16+Tnp4e/f7770RElJycTLGxsURE1L17d5oyZQoVFBTQ7du3ydjYmCIiIoiIKCgoiHR0\ndOj06dMklUopMDCQOnfuzNdrZ2dH58+fl5EVGhpK2dnZVFhYSDNnzqR27drx+/z8/MjIyIiioqIo\nPz+fevXqRba2trRnzx6SSqU0f/586tmzp9z6K9JFWV/u3LmTP78lzJw5k4YMGUIZGRn09u1bcnd3\np8DAQLn9J+94Pz8/MjQ0pJs3b1JxcTGNGjWKvLy8iIgoOzubrKysaOfOnSSRSOjvv/8mIyMjiomJ\nkVt/586dafbs2VRUVESXL18mkUjEn8unT5+SQCAgPz8/ys3Npby8PKW/n4pkK9O7JqjoOVDlp8S5\nc+fI0dGRBg0aRD4+PvTFF1/Q+PHjaciQIdSsWTP69ddfqypChsOHD9OoUaOIiGjp0qW0fPlyfp+b\nmxv9+eef5Y5pCA/DmjBuiouJ2rcn2rev2qqsU9434yY1lcjQkOjfZ0Gd8vDhQzIxMaHff/+dCgsL\nZfYFBQXxD9mSG6Iy46ZZs2b8Q5iI6MyZM2RnZ0dEnHHTqFEjmeNNTEzo+vXrcutydXWl7du3y2wT\n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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x5aadbd0>"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "The cartoon above shows the DFT of the window function as it slides across the two signals for the circular convolution. In the top plot, the green signal sits on the peak of the first sidelobe of the window. Because the peak sidelobe level is 31 dB down, its contribution to the overall DFT at that discrete frequency is reduced by 31 dB. Note that at this stage, the signal on the left offers its maximum contribution because it is squarely on the peak of the window's mainlobe. As shown in the bottom plot, the same situation   happens again  in the convolution as the sliding window reaches the green signal on the right; it will be contaminated by  signal on the left as that signal climbs onto the peak of the sidelobe."
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "### 3-dB Bandwidth\n",
      "\n",
      "At the 3-dB bandwidth point, the mainlobe has lost half of its peak power. This is because $10 \\log_{10}(1/2) \\approx -3 $. The following figure shows the DFT for the  hamming  window and its corresponding half-power point down the mainlobe. In general,  there is no closed form solution to the half-power level so we  must compute it numerically."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "fig,ax = subplots()\n",
      "fig.set_size_inches((7,3))\n",
      "\n",
      "N=512\n",
      "w=signal.windows.hamming(Ns)\n",
      "W=db20(w,N)\n",
      "\n",
      "m =10\n",
      "p=np.polyfit(arange(m)/N*Ns,W[:m]-W[0]+3.01,2) # fit quadratic polynomial\n",
      "width = np.roots(p)[0]*2 # 3-dB beamwidth\n",
      "\n",
      "ax.plot(arange(N)/N*Ns,W-W[0]) # normalize to peak\n",
      "ax.set_ylim(ymin=-10)\n",
      "ax.set_xlim(xmax = 2)\n",
      "\n",
      "ax.vlines(width/2,0,-60,lw=2.,linestyle='--',color='g')\n",
      "ax.set_ylabel(r'$20\\log_{10}|X|$',fontsize=22)\n",
      "ax.set_title(r'$ BW_{3dB}$=%3.2f bins'%width)\n",
      "ax.set_xlabel(r'$\\frac{N_s}{N} k$',fontsize=22)\n",
      "ax.annotate('',fontsize=28,xy=(0,-3), \n",
      "            xytext=(width/2,-3),\n",
      "            arrowprops=dict(arrowstyle=\"<->\",lw=3))\n",
      "ax.annotate('',fontsize=28,xy=(1.2,0), \n",
      "            xytext=(1.2,-3),\n",
      "            arrowprops=dict(arrowstyle=\"<->\",lw=3))\n",
      "ax.hlines(-3,width/2,2,linestyle='--',color='g',lw=2.)\n",
      "ax.text( width/2/4,-5,r'$\\frac{BW_{3dB}}{2}$',fontsize=22)\n",
      "ax.text( 1.3,-2,'-3 dB',fontsize=18)\n",
      "\n",
      "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "pyout",
       "prompt_number": 5,
       "text": [
        "<matplotlib.text.Text at 0x5e79170>"
       ]
      },
      {
       "output_type": "display_data",
       "png": "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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x5c2e5d0>"
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "The figure above is the schematic for the mainlobe of the window. This figure of merit provides a sense of how far off a signal can be from the mainlobe before losing half its power."
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "### Scalloping Loss"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "The DFT divides the sampling frequency $ f_s $ into $N$ discrete frequencies, but the signal of interest may no conveniently lie on one of these sampled frequencies. The *scalloping loss* accounts for the reduction in signal energy due to this common, unfortunate situation. \n",
      "\n",
      "One common way to define  the scalloping loss is as the ratio of coherent gain for a tone located half a bin from a DFT sample point to the coherent gain,\n",
      "\n",
      "$$ Scalloping \\hspace{0.1em} Loss = \\frac{|\\sum_{n=0}^{N_s-1} w_n \\exp \\left( -j\\pi n/N_s  \\right)|}{\\sum_{n=0}^{N_s-1} w_n} $$"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "fig,ax = subplots()\n",
      "fig.set_size_inches((7,3))\n",
      "\n",
      "N=256\n",
      "Ns = 32\n",
      "w=signal.windows.triang(Ns)\n",
      "W=db20(w,N)\n",
      "\n",
      "W0 = db20(exp(1j*2*pi/Ns*arange(Ns)*1/2.)*w,N)-W[0]\n",
      "W=W-W[0] # rescale for plot\n",
      "\n",
      "ax.plot(W,label='window')\n",
      "ax.plot(W0,label='half-bin shifted')\n",
      "scalloping_loss = W[0]-W0[0]\n",
      "ax.axis(ymin=-30,ymax=1,xmax=24)\n",
      "\n",
      "ax.set_title('Triangular window scalloping Loss=%3.2f'%(scalloping_loss))\n",
      "ax.set_xlabel('k',fontsize=16)\n",
      "ax.set_ylabel(r'$20\\log_{10}|W|$',fontsize=22)\n",
      "ax.hlines(-scalloping_loss,0,24,color='red',linestyle='--',lw=2.)\n",
      "ax.legend(loc=0)\n",
      "ax.grid()\n",
      "\n",
      "# fig.savefig('figure_00@.png', bbox_inches='tight', dpi=300)\n"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "display_data",
       "png": "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\n+w3TPNqjhBCEhYUxffp06tWrx+LFi/Hw8NBasBk2bdrEjBkzCAsL4+TJkzRu3Fizbs6cOfj7+6Ov\nr8+SJUvo2LFjlv1lM6z0Kk6cUDfLDhkCX3yhnnS6rAl7FEbPDT3xqubFt298S3mDMjjArlTqafU+\ny1dJMiqVinXr1mn9qtmwsDD09PR49913WbBggSZZXrp0ibfeeouTJ09y7949OnTowNWrV9HTy1yB\nlslSelUPH0K/fmBkBL/8AlZWSkdU/J4nPWfY78N4EPuAzX03Y29mr3RIkqRVhb51BNRJUk9PL9N9\nlC/+m9NrRXHRj6ura7avb9++HT8/PwwNDXF2dsbFxYUTJ07k2Ywsvbqydk9W5cqwbx9MmqQehH3r\nVnB3L/xxS1I5mpU3Y3O/zcz9ay6vr3ydDX020Lpaa6XDKlFlqMtkOeYuX8nSysqKsLAwrK2tdXKQ\ngQz379/PlBgdHBw094e+bNiwYTg7OwNgYWFBo0aNNB+UjI5uuZzzcmhoqE7FU1zLixaBiUkQXl7w\n/ffe+PnpVnxFvayn0sMzzRODqgb02dSHT1t/SoP4BqhUKsXiCw0N1ZnyKcnLGXQlnuJYDgoKIiAg\nAECTD3KSr2bYMWPGsGzZsrw20yofHx8iIyOzvD579my6d+8OQNu2bTM1w44bN47mzZszcOBAAEaO\nHEmXLl3o1atXpmPIZlipsM6eVQ+T16MHzJ9fNvsxbzy5Qa8NvWhYpSE/dv+RCgYVlA5Jkgql0M2w\nxZ0oAfbt2/fK+9jb23Pnzh3N8t27d7G3l/0qkva5u8PJk+oLfwYNUo/6Y2iodFTFq4ZlDY6OOMqQ\nbUPwXe/Ltv7bMClnonRYklQkCnWfpS548VeAr68vv/32G8nJyURERHDt2jWaNm2qYHSl18tNN2WR\nlRXs2gUxMeqkWZD5MUt6ORobGrOhzwbszex545c3FJkfs6SXoa6Q5Zi7Epkst23bhqOjI//88w9d\nu3alc+fOALi5udGvXz/c3Nzo3Lkzy5cv1+k+VqnkMzJSX+xTvjz4+kJcnNIRFT99PX1W+a7CvYo7\nHdZ14HH8Y6VDkiSty7XPcvHixTx7pt1fiubm5owfP16rx3xVss9S0rbUVBg5Eq5fh507wdxc6YiK\nnxCCKQemsOvaLvYN3kfVilWVDkmSXkmB+yydnJyIiYnRajB5DWwgSSWRgQH4+6sHYO/QAQIDwdpa\n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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x5a047d0>"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "The horizontal line in the figure above shows the level of the scalloping loss for the triangular window."
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Summary"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "In this section, we illustrated the major issues involved in using window functions for spectral analysis and derived the most common figures of merit for some popular windows. There are many more windows available and Harris (1978) provides an exhaustive list and many more detailed figures of merit. In fact, I have seen rumpled versions of this 1978 paper in just about every engineering lab I have worked in. In practice, some window functions are preferred because they have coefficients that are easy to implement on fixed point arithmetic hardware without excessive sensitivity to quantization errors. The main idea is that windows with favorable  sidelobe levels are always wider (larger equivalent noise bandwidth and 3-dB bandwidth) so these pull in more signal noise into their wider mainlobes and make it harder to distinguish nearby signals which may fit into the same mainlobe. Thus, there is a trade-off between signal-to-noise (more noise in mainlobe reduces signal-to-noise) and resolution (nearby indistinguishable signals). Unfortunately, it is not possible to simultaneously have very low sidelobes and a very narrow mainlobe. This is due to the *stuffed mattress effect* where \"pushing\" down the DFT at any one place causes it to sprout up somewhere else.\n",
      "\n",
      "Outside of two-tone seperability, there is the issue of wideband signals. In that case, you may prefer a wide mainlobe that encompasses the signal bandwidth with very low sidelobes that reduce extraneous signals. The bottom line is that there are many engineering trade-offs involved in choosing window functions for particular application. Understanding how window functions are used in spectral analysis is fundamental to the entire field of signal processing because it touches all of the key engineering problems encountered in practice.\n",
      "\n",
      "As usual, the corresponding IPython notebook for this post  is available for download [here](https://github.com/unpingco/Python-for-Signal-Processing/blob/master/Windowing_Part3.ipynb). \n",
      "\n",
      "Comments and corrections welcome!"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "References\n",
      "---------------\n",
      "\n",
      "* Harris, Fredric J. \"On the use of windows for harmonic analysis with the discrete Fourier transform.\" Proceedings of the IEEE 66.1 (1978): 51-83."
     ]
    }
   ],
   "metadata": {}
  }
 ]
}